package com.chen.upload;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.servlet.http.Part;

/**
 * <b>上传文件时Part对象的工具类</b>
 * <p>
 * 描述:<br>
 * 提供获取上传的文件名和写入服务器接口<br>
 * Part part = request.getPart("uploadFile");<br>
 * @author 威 
 * <br>2017年11月29日 下午12:23:40 
 * @see
 * @since 1.0
 */
public class UploadUtil {
	//getFilename 取得上传文件名称
	public static String getFilename (Part part){
		//在body内容中（filename="01.jpg"）
		//通过Part--getHeader方法--指定标头名--获取标头信息
		String header = part.getHeader("Content-Disposition");
		String filename = header.substring(header.indexOf("filename=\"") + 10, header.lastIndexOf("\""));
		return filename;
	}			
	public static void writeTo(String filename, Part part, String writePath){
		System.out.println(writePath + filename);
		InputStream in = null;
		FileOutputStream out = null;
		try {
			in = part.getInputStream();
			out = new FileOutputStream(writePath + filename);
			byte[] buffer = new byte[1024];
			int length;
			while((length = in.read(buffer)) != -1)
				out.write(buffer, 0, length);
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			try{
				in.close();
				out.close();
			}catch(IOException e){
				e.printStackTrace();
			}
		}
	}		
}
